package edu.tsinghua.lumaqq.qq.packets.in._08;

import java.nio.ByteBuffer;

import edu.tsinghua.lumaqq.qq.beans.QQUser;
import edu.tsinghua.lumaqq.qq.packets._08BasicInPacket;
import edu.tsinghua.lumaqq.qq.packets.PacketParseException;

/**
 * 获得登陆令牌1
 * -----------------
 * 包格式
 * 1. 1字节的包头 0x02
 * 2. 2字节的QQ版本号 0x113f
 * 3. 2字节的命令字 0x0062
 * 4. 2字节的包序号 0x2679
 * 以下是包体：
 * 5. 2字节的登陆令牌1 长度 0x0018
 * 6. 24位令牌1 的内容
 * 7. 包尾 1字节 0x03
 *
 * @author luna
 */
public class _08LoginToken1ReplyPacket extends _08BasicInPacket {

    public char loginToken1Length;
    public byte[] loginToken1;

    public _08LoginToken1ReplyPacket(ByteBuffer buf, int length, QQUser user)
            throws PacketParseException {
        super(buf, length, user);
    }

    /*
      * (non-Javadoc)
      *
      * @see edu.tsinghua.lumaqq.qq.packets._08InPacket#getPacketName()
      */
    @Override
    public String getPacketName() {
        return "Login Token 1 Reply _08Packet";
    }

    /**
     * @return 解密的起始位置，这个位置相对于包体来说，-1表示此包没有加密
     */
    protected int getDecryptStart() {
        return -1;
    }

    @Override
    protected void parseBody(ByteBuffer buf) throws PacketParseException {
        //System.out.println("Login Token 1 的Parserbody方法已经被执行");
        //buf.clear();
        //登陆令牌1长度
        loginToken1Length = buf.getChar();
        //登陆令牌内容
        loginToken1 = new byte[24];
        //设置登陆令牌1
        buf.get(loginToken1);
    }

}
